package projectdemo01;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:咭咭熊
 * Date:2021 - 09 - 23
 * Time:19:27
 */

import projectdemo01.book.BookList;
import projectdemo01.user.AdminUser;
import projectdemo01.user.NormalUser;
import projectdemo01.user.User;

import java.util.Scanner;

/***
 * 一、简易图书管理系统
 * 1. 书 ： Book Booklist
 * 2. 用户：管理员、普通用户
 * 3.操作：增删查改
 *
 * 二、功能需求：
 * 1.登录；
 * 2.管理端：
 * （1）整理书籍
 * （2）查阅书籍
 * （3）增加书籍
 * （4）删除书籍
 * （5）打印书籍列表
 * （6）退出
 *
 * 3.用户端
 * （1）查阅书籍
 * （2）借阅书籍
 * （3) 归还书籍
 * （4）退出
 *三、对书籍的操作接口
 * (1)AddOperation
 * (2)DelOperation
 * (3)FindOperation
 * (4)RemoveOperation
 * (5)DisplayOperation
 * (6)BorrowOperation
 * (7)ReturnOperation
 * (8)ExitOperation
 *
 */
public class Main {
    /**
     * 1.登录方法
     */
    public static User login(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您的姓名：");
        String name = scanner.nextLine();
        System.out.println("请输入您的身份：1 —— 管理员 ; 0 —— 普通用户");
        int choice = scanner.nextInt();
        if(choice == 1){
            return new AdminUser(name);
        }else{
            return new NormalUser(name);
        }
    }
    public static void main(String[] args) {
        BookList bookList = new BookList();
        //登录成功之后，user会引用一个对象，这个对象了可能是AdminUser 也可能是NormalUser
        User user = login();
        while(true){
            //会调用user引用的对象的menu方法，返回对应的选择
            int choice = user.menu();//根据返回选择调用菜单页面相应的执行操作

            //根据返回的choice去调用对应类的work方法
            //work方法的调用，以及调用谁的——交给doOperation方法进行实现
            user.doOperation(choice,bookList);
        }
    }
}
